home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 5 / Apprentice-Release5.iso / Source Code / C++ / Snippets / CMIO / CMIO.h < prev   
Text File  |  1994-09-30  |  1KB  |  57 lines

  1. /*********************************************************************\
  2.  
  3.     CMIO.h
  4.     
  5.     [Macintosh]
  6.     
  7.     Routines for doing A/D conversion with National Instruments
  8.     NB-MIO-16 card.
  9.     Written by Dan Crevier, 1994
  10.  
  11.     See CMIO.cpp for usage details
  12.  
  13. \*********************************************************************/
  14.  
  15. #pragma once
  16.  
  17. class CMIO
  18. {
  19.     public:
  20.     
  21.         short Config(void);
  22.     
  23.         short SampleAvailable(short *error);
  24.         short GetSample(void) { return *ADFIFOReg; };
  25.         void StartCollection(void);
  26.         void EndCollection(void);
  27.         void ConfigureCollection(unsigned short *channelArray, unsigned short sampleInterval,
  28.                                  unsigned long nSamples);
  29.  
  30.     private:
  31.  
  32.         // Configuration and Status Registers
  33.         unsigned short *comReg1, *comReg2, *statReg;
  34.         // Event Strobe Register Group
  35.         unsigned short *startConvReg, *startDAQReg, *ADClearReg, *exStrobeReg;
  36.         // Analog Output Register Group
  37.         unsigned short *DAC0Reg, *DAC1Reg, *DAC01Reg;
  38.         // Analog Input Register Group
  39.         unsigned short *MUXCounterReg, *MUXGainReg, *ADFIFOReg;
  40.         // Counter/Timer (AM9513) Register Group
  41.         unsigned short *AmDataReg, *AmCommandReg, *AmStatusReg;
  42.         
  43.         unsigned short comRegVal;
  44. };
  45.  
  46. // •• Error codes ••
  47. const short kErrOverflow = 1 << 9;
  48. const short kErrOverrun = 1 << 8;
  49.  
  50. // •• Other defines ••
  51. const short kCONVAVAIL = 1 << 13;
  52.  
  53. // •• Command Register 1 values ••
  54. const short kDAQEN = 16;
  55. const short kSCANEN = 8;
  56. const short k1632CNT = 2;
  57.